﻿#define _CRT_SECURE_NO_WARNINGS

//给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ，返回 true ；
//如果数组中每个元素互不相同，返回 false 。

//给你一个整数数组 nums 和一个整数 k ，判断数组中是否存在两个 不同的索引 i 和 j ，满足 nums[i] == nums[j] 
//且 abs(i - j) <= k 。如果存在，返回 true ；否则，返回 false 。


//258. 各位相加
//给定一个非负整数 num，反复将各个位上的数字相加，直到结果为一位数。返回这个结果。
//
//示例 1:
//
//输入: num = 38
//输出 : 2
//解释 : 各位相加的过程为：
//38 -- > 3 + 8 -- > 11
//11 -- > 1 + 1 -- > 2
//由于 2 是一位数，所以返回 2。


//#include <stdio.h>
//
//int main()
//{
//
//
//	return 0;
//}


//int reverse(int x)
//{
//	long n = 0;
//	while (x)
//	{
//		n = n * 10 + x % 10;
//		x /= 10;
//	}
//	return n > INT_MAX || n < INT_MIN ? 0 : n;
//}

//int removeElement(int* nums, int numsSize, int val) {
//    int i = 0;
//    int n = numsSize;
//    int j = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] == val)
//        {
//            for (j = i + 1; j < numsSize; j++)
//            {
//                if (nums[j] != val)
//                {
//                    int tmp = nums[j];
//                    nums[j] = nums[i];
//                    nums[i] = tmp;
//                    break;
//                }
//            }
//        }
//    }
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] == val)
//        {
//            n--;
//        }
//    }
//    return n;
//}






//面试题61.扑克牌中的顺子
//从若干副扑克牌中随机抽 5 张牌，判断是不是一个顺子，即这5张牌是不是连续的。
//2～10为数字本身，A为1，J为11，Q为12，K为13，而大、小王为 0 ，可以看成任意数字。A 不能视为 14。
//
//
//
//示例 1:
//
//输入: [1, 2, 3, 4, 5]
//输出 : True
//
//
//示例 2 :
//
//	输入 : [0, 0, 1, 2, 5]
//	输出 : True

//bool isStraight(int* nums, int numsSize) {
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        for (j = i + 1; j < numsSize; j++)
//        {
//            if (nums[i] == nums[j] && nums[i] != 0)
//            {
//                return false;
//            }
//        }
//    }
//    int max = nums[0];
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] > max)
//        {
//            max = nums[i];
//        }
//    }
//    int min = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] != 0)
//        {
//            min = nums[i];
//            break;
//        }
//    }
//    for (i = 0; i < numsSize; i++)
//    {
//        if (nums[i] != 0 && nums[i] < min)
//        {
//            min = nums[i];
//        }
//    }
//    if (max - min <= 4)
//    {
//        return true;
//    }
//    else
//    {
//        return false;
//    }
//
//}



//int pivotIndex(int* nums, int numsSize) {
//    int i = 0;
//    int j = 0;
//    int k = 0;
//    int n = 0;
//    int arr[10000] = { 0 };
//    for (i = 0; i < numsSize; i++)
//    {
//        int sum = 0;
//        int sum1 = 0;
//        int sum2 = 0;
//        if (i == 0)
//        {
//            for (j = 1; j < numsSize; j++)
//            {
//                sum += nums[j];
//            }
//            if (sum == 0)
//            {
//                return 0;
//            }
//        }
//        else if (i == numsSize - 1)
//        {
//            int flag = 0;
//            for (j = 0; j < numsSize - 1; j++)
//            {
//                sum += nums[j];
//            }
//            if (sum == 0)
//            {
//                for (k = 0; k < numsSize - 1; k++)
//                {
//                    if (arr[k] != 0)
//                    {
//                        break;
//                    }
//                }
//                if (k == numsSize - 1)
//                {
//                    return numsSize - 1;
//                }
//            }
//        }
//        else
//        {
//            for (j = 0; j < i; j++)
//            {
//                sum1 += nums[j];
//            }
//            for (k = i + 1; k < numsSize; k++)
//            {
//                sum2 += nums[k];
//            }
//            if (sum1 == sum2)
//            {
//                arr[i] = i;
//            }
//        }
//    }
//    for (i = 1; i < numsSize; i++)
//    {
//        if (arr[i] != 0)
//        {
//            return i;
//        }
//    }
//}


//#include <stdio.h>
//
//int pivotIndex(int* nums, int numsSize) {
//    int sum = 0, n = 0;
//    for (int i = 0; i < numsSize; i++)
//        sum = sum + nums[i];
//    for (int i = 0; i < numsSize; i++) {
//        if (n * 2 == sum - nums[i])
//            return i;
//        n = n + nums[i];
//    }
//    return -1;
//}
//
//int main()
//{
//    int nums[5] = { 1,2,4,2,1 };
//
//    int sz = sizeof(nums) / sizeof(nums[0]);
//
//    int ret = pivotIndex(nums, sz);
//
//    printf("%d\n", ret);
//
//    return 0;
//}